﻿using System;
using System.Data;
using System.Windows.Forms;
using System.Collections.Generic;

namespace PJRScrum
{
    public partial class VerwijderArtikel : Form
    {
        //Dataset met de naam + id van artikelen
        private DataSet DSnaamId;

        //Voor de id te vergelijken met de dataset.
        private int index;
        View v;
        private string gekliktProductNaam;

        public VerwijderArtikel()
        {
            InitializeComponent();
            v = View.GetInstance();
        }

        /// <summary>
        /// Event
        /// Laad alle artikelen
        /// </summary>
        /// <param name="sender">Zender</param>
        /// <param name="e">Args</param>
        private void VerwijderArtikel_Load(object sender, EventArgs e)
        {
            LaadArtikelen();
        }

        /// <summary>
        /// Laad alle artikelen uit de database.
        /// De database geeft terug: 
        ///        Naam;ID
        /// Deze wordt in een dataset gezet en vervolgens wordt de data (ALLEEN NAAM) uit de dataset gehaald.
        /// Deze naam wordt dan in de dataGridView geladen.
        /// </summary>
        private void LaadArtikelen()
        {
            DSnaamId = v.LaadNaamId();
           

            //Dit is er zodat we slechts 1 keer deze kolom maken. 
            //Als het if statement er niet was, zou deze bij opnieuw inladen nogmaals toegevoegd worden.
            if (dataGridViewArtikel.Columns.Count == 0)
                dataGridViewArtikel.Columns.Add("Naam", "Naam");

            //Voeg de artikelen toe aan de dataGridView
            for (int i = 0; i < DSnaamId.Tables[0].Rows.Count; i++)
            {
                dataGridViewArtikel.Rows.Add(DSnaamId.Tables[0].Rows[i][0]);
            }
        }

        /// <summary>
        /// Event
        /// Wanneer er op de knop verwijderen word geklikt.
        /// </summary>
        /// <param name="sender">Zender</param>
        /// <param name="e">Args</param>
        private void buttonVerwijderen_Click(object sender, EventArgs e)
        {
            //dataSet.Tables[0].Rows[index][1] houdt in dat de we index waarde van het klik event hier beneden
            //nemen en deze dan gebruiken om het goede artikel in de dataset te pakken en deze te verwijderen.
           
            v.VerwijderArtikel(Convert.ToInt32(DSnaamId.Tables[0].Rows[index][1]));

            //Verwijder alles voordat we opnieuw laden
            dataGridViewArtikel.Rows.Clear();

            //Laad de artikelen opnieuw in
            LaadArtikelen();

            //Maak deze weer false
            buttonVerwijderen.Enabled = false;
            MessageBox.Show("Het product: " + gekliktProductNaam + " is verwijderd uit uw keuze.", "Verwijderd", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        private void dataGridViewArtikel_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            //Extra zelerheid zodat we pas vanaf de 0-de rij kunnen klikken
            if (e.RowIndex >= 0)
            {
                //Pak de index van de rij waar je zojuist op geklikt hebt.
                index = Convert.ToInt32(e.RowIndex);
                gekliktProductNaam = dataGridViewArtikel.Rows[e.RowIndex].Cells[0].Value.ToString();
                //Enable de knop
                buttonVerwijderen.Enabled = true;
            }
        }
    }
}
